A wide range of electronic systems, including for example personal computers, appliances, vehicles and industrial manipulators, can be controlled by user input in some form. These systems are often “tightly coupled” to a particular set of user interface devices (e.g. mouse & keyboard, button panel, steering wheel & foot pedals, joysticks)—that is, these systems are built to be used with those specific devices or types of devices, and do not naturally offer support for other devices. In some cases the supported user interfaces may be undesirable or prohibitive for a particular user or use case, and in such cases it would be beneficial to customize users' interactions with the system. For example, someone with a physical disability affecting hand function may not be able to effectively use a standard game console controller to play a video game, whereas they may be capable of playing the video game using other controls, such as, for example, a combination of head controls and foot controls, or reconfigured existing controls, if only it were possible to control a gaming console using such inputs or in such a method.
Many electronic systems are designed to support only a small fraction of existing user interface devices and provide limited configuration options to configure the use of these devices. In many cases, it is not straightforward to reconfigure a system to use user interface devices other than those it was designed to support, and thus users are left with limited options in cases where the available user interface devices are unsuitable for various reasons. To address this problem, we have invented a modular, reconfigurable, interconverting user interface routing system. This system allows users to use electronic systems in ways adapted to their needs and preferences rather than users needing to adapt to the natural configuration of the systems, by configuring our system to use their preferred user interface devices to control a system they desire to control in a manner that suits their needs or desires.
The system enables such reconfigurable user interface compatibility, as well as a number of further enhancements such as:                The system can process, combine, and transform input signals to create new behaviors not designed into either the user interface devices being used or the system being controlled.        The system may provide a live-updating graphical interface, allowing users to rapidly configure and reconfigure their controls, thus reducing the barriers to optimizing their controls or switching between use cases.        The system can log user inputs and intermediate signals, enabling analysis and reporting of system usage (applications range from safety/prevention to patient-tracking during physical therapy).        The system enables multiple users to control the system collaboratively using multiple user interface devices (e.g., for training or assistance).        The system can modulate user controls according to measurements or inputs (e.g., as part of a physical therapy regimen, decrease resistance as the user fatigues; as part of a training exercise, decrease assistance as user improves).        